#图像下载
'''import pandas as pd
import requests
from io import BytesIO
from PIL import Image
import os
# 指定Excel文件路径和工作表名称
excel_path = '新图像素材/train.xlsx'
# 读取Excel文件
df = pd.read_excel(excel_path)
# 假设列名为'URLs'，包含图片的URLs
column_name = '素材地址'
# 确保下载文件夹存在
download_folder = '新图像素材/train'
if not os.path.exists(download_folder):
    os.makedirs(download_folder)
n=0
# 下载并保存图片
for index, row in df.iterrows():
    n=n+1
    url = row[column_name]
    try:
        response = requests.get(url)
        if response.status_code == 200:
            # 从响应中获取图片内容
            image_content = response.content
            # 用BytesIO创建一个可读的二进制流
            image = Image.open(BytesIO(image_content))
            # 为图片生成文件名
            file_name = os.path.join(download_folder, str(n)+'.jpg')
            # 保存图片
            image.save(file_name)
            print(f'图片已下载：{file_name}')
        else:
            print(f'图片下载失败，状态码：{response.status_code}')
    except Exception as e:
        print(f'下载图片失败：{url}, 错误：{e}')'''

'''import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split

# 指定原始Excel文件路径
excel_path = 'train_val.xlsx'

# 读取Excel文件
df = pd.read_excel(excel_path)

# 使用train_test_split进行9:1划分，test_size=0.1代表10%的数据作为测试集
# random_state确保每次运行结果一致
train_df, test_df = train_test_split(df, test_size=0.1, random_state=42)

# 指定输出的Excel文件名
train_excel_path = 'train.xlsx'
test_excel_path = 'val.xlsx'

# 将训练集DataFrame保存到Excel文件
train_df.to_excel(train_excel_path, index=False)

# 将测试集DataFrame保存到Excel文件
test_df.to_excel(test_excel_path, index=False)

print(f'数据已随机划分，训练集保存在：{train_excel_path}')
print(f'测试集保存在：{test_excel_path}')'''

'''import seaborn as sns
import pandas as pd
import os
import matplotlib.pyplot as plt
base_dir = '新图像素材'
image_train_dir = os.path.join(base_dir, 'train')
excel_train = os.path.join(base_dir, 'train.xlsx')
df = pd.read_excel(excel_train)
# 绘制箱线图
for column in ['log消耗标准化','点击率标准化','转化率标准化']:
    # 绘制箱线图
    plt.figure(figsize=(5, 12))  # 可以调整图形大小
    sns.boxplot(data=df, y=column)
    sns.swarmplot(y=column, data=df, dodge=True)
    plt.title(f'Boxplot of {column}')  # 设置图形标题
    plt.show()  # 显示图形'''

'''import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties
import seaborn as sns

data = pd.read_excel('D:/厦门大学/实习/project/pythonProject/新图像素材/train.xlsx')

# 设置matplotlib的字体，以支持中文显示
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号

plt.figure(figsize=(10, 6))
data.boxplot(column=['点击率标准化'])
plt.title('点击率标准化箱线图')
plt.show()

plt.figure(figsize=(10, 6))  # 设置图形大小
data['点击率标准化'].hist(bins=20)  # 替换'your_column_name'为实际的列名，bins定义直方图的箱数
plt.title('点击率标准化直方图')
plt.show()

plt.figure(figsize=(10, 6))
data.boxplot(column=['转化率标准化'])
plt.title('转化率标准化箱线图')
plt.show()

plt.figure(figsize=(10, 6))  # 设置图形大小
data['转化率标准化'].hist(bins=20)  # 替换'your_column_name'为实际的列名，bins定义直方图的箱数
plt.title('转化率标准化直方图')
plt.show()'''

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

# 设置matplotlib的字体，以支持中文显示
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号

# 读取Excel文件
excel_file_path = 'D:/厦门大学/实习/project/pythonProject/新图像素材/train.xlsx'  # 替换为你的Excel文件路径
df = pd.read_excel(excel_file_path)

plt.subplot(311)
sns.distplot(df["log消耗标准化"], color="skyblue", label="log消耗标准化")
plt.legend()
plt.subplot(312)
sns.distplot(df["点击率标准化"], color="red", label="点击率标准化")
plt.legend()
plt.subplot(313)
sns.distplot(df["转化率标准化"], color="green", label="转化率标准化")
plt.legend()

# 显示图形
plt.show()